The present invention is related to computer systems. More particularly, the present invention is directed to a method and mechanism of improving system utilization and throughput.
Many systems maintain backup, standby, remote, reporting, and/or replica copies of data at various sites throughout the network. This is done for high availability, as well as for creating copies of production data against which to run reporting applications. These copies may be maintained by the storage system, file system, database management system, and other software or hardware.
For explanatory purposes only and not as an intent to limit the scope of the invention, the term “primary data” will be used throughout this document to refer to production data, the term “primary site” will be used throughout this document to refer to any site comprising primary data, the term “secondary copy” will be used throughout this document to refer to any backup, standby, remote, reporting, or replica copy of primary data, and the term “secondary site” will be used throughout this document to refer to any site comprising one or more secondary copies of primary data.
Each piece of data (e.g., a file, a table, a partition, etc.) may be divided and stored separately. For instance, a secondary copy may be split into multiple pieces and saved on different sites throughout a network. Additionally, a system may keep several copies of a piece of data. For example, some database systems have more than one copy of a primary database to guard against multiple outages. The frequency in which a secondary copy is refreshed to reflect updates to the primary data may vary from system to system and even from one piece of data to another.
One drawback of maintaining secondary copies of data is the increased storage costs from having to purchase additional hardware. Since this additional hardware usually remains idle until a failure occurs, system utilization and throughput may be improved if some of the workload on the primary site could be offloaded onto one or more secondary sites. In most environments, secondary copies can only be opened in read-only mode when they are in the backup role. This prevents data divergence, which can occur when data at a secondary site is modified and those changes are not propagated to data at the primary site and are in conflict with updates made at the primary site. As a result, the secondary copy is no longer a faithful duplicate of the primary data.
However, because few applications are completely read-only, most applications will have to be re-written (or modified) in order to take advantage of secondary copies of data. This, in turn, reduces the usefulness of such data. Accordingly, there is a need for a method and mechanism that allow existing applications, which read and write, to utilize standby sites without having to be modified.
Embodiments of the present invention provide methods, systems, and media for improving system utilization and throughput. According to an embodiment, a request from an application to access data at a primary site is received. The request is evaluated to determine whether it is suitable for processing at a secondary site, which has a copy of the data at the primary site. If the request is found to be suitable for processing at the secondary site, the request is routed to the secondary site for processing.
Further details of aspects, objects, and advantages of the invention are described below in the detailed description, drawings, and claims. Both the foregoing general description and the following detailed description are exemplary and explanatory, and are not intended to be limiting as to the scope of the invention.